### 4.5 Symspecs

Many of the output options allow functions to be included or excluded using symspecs (symbol specifications), which observe the following syntax:

           filename_containing_a_dot
         | funcname_not_containing_a_dot
         | linenumber
         | ( [ any_filename ] `:' ( any_funcname | linenumber ) )

Here are some sample symspecs:

``main.c`'
  Selects everything in file `main.c`—the dot in the string tells `gprof` to interpret the string as a filename, rather than as a function name. To select a file whose name does not contain a dot, a trailing colon should be specified. For example, ``odd:`' is interpreted as the file named `odd`.
``main`'
  Selects all functions named ``main`'.

  Note that there may be multiple instances of the same function name because some of the definitions may be local (i.e., static). Unless a function name is unique in a program, you must use the colon notation explained below to specify a function from a specific source file.

  Sometimes, function names contain dots. In such cases, it is necessary to add a leading colon to the name. For example, ``:.mul`' selects function ``.mul`'.

  In some object file formats, symbols have a leading underscore. `gprof` will normally not print these underscores. When you name a symbol in a symspec, you should type it exactly as `gprof` prints it in its output. For example, if the compiler produces a symbol ``_main`' from your `main` function, `gprof` still prints it as ``main`' in its output, so you should use ``main`' in symspecs.

``main.c:main`'
  Selects function ``main`' in file `main.c`.
``main.c:134`'
  Selects line 134 in file `main.c`.